筆記目錄

Skip to content

在 Windows 上安裝與升級 PowerShell 7

TLDR

  • Windows PowerShell (5.1) 與 PowerShell 7 是完全不同的產品,兩者可並存於同一系統。
  • PowerShell 7 採用 UTF-8 (不含 BOM) 編碼,能有效解決舊版處理中文字元與 Git 互動時的亂碼問題。
  • 建議在需要跨平台腳本、使用 AI 生成腳本,或工具明確要求 PowerShell 6+ 以上版本時安裝。
  • 安裝 PowerShell 7 後,需額外執行 Update-Help 指令才能取得完整的離線說明文件。
  • 使用 WinGet 可快速進行安裝與版本升級。

Windows PowerShell 與 PowerShell 7 的差異

什麼情況下會遇到這個問題:當你發現系統內建的 PowerShell 無法執行現代化工具(如 Copilot CLI)或處理中文字元出現亂碼時。

  • 底層架構:Windows PowerShell 基於封閉的 .NET Framework,僅限 Windows;PowerShell 7 基於開源的 .NET,支援跨平台運行。
  • 生命週期:Windows PowerShell 已停止新功能開發,僅進行維護性更新。
  • 預設編碼:PowerShell 7 統一採用 UTF-8(不含 BOM),解決了舊版處理純文字檔與中文字元時的亂碼問題。
  • 執行檔隔離:兩者可並存,Windows PowerShell 執行檔為 powershell.exe,PowerShell 7 為 pwsh.exe

安裝指南

什麼情況下會遇到這個問題:當你需要安裝或升級 PowerShell 7 以滿足開發環境需求時。

WinGet 安裝後會自動設定環境變數,無需手動配置。

  • 搜尋可用版本
    powershell
    winget search --id Microsoft.PowerShell
  • 安裝最新穩定版
    powershell
    winget install --id Microsoft.PowerShell --source winget
  • 一鍵升級至最新版
    powershell
    winget upgrade --id Microsoft.PowerShell
  • 解除安裝
    powershell
    winget uninstall --id Microsoft.PowerShell

Get-Help 說明文件機制

什麼情況下會遇到這個問題:當你執行 Get-Help 卻發現無法查看範例或詳細參數說明時,這是因為 PowerShell 預設不打包離線說明文件。

若需要完整範例說明,可採取以下方式:

  • 連線查詢:使用 -Online 參數(例如 Get-Help Get-Process -Online),直接開啟瀏覽器查看官方網頁版說明。
  • 下載離線檔:以系統管理員身分執行以下指令:
    powershell
    Update-Help -UICulture zh-tw, en-US -Force -ErrorAction SilentlyContinue

參數說明

  • -UICulture zh-tw, en-US:指定下載語言,加入 en-US 作為備援。
  • -Force:強制重新下載說明檔。
  • -ErrorAction SilentlyContinue:忽略部分模組未提供線上說明檔所產生的錯誤訊息。

什麼情況下需要額外安裝新版?

什麼情況下會遇到這個問題:當你猶豫是否要移除舊版或安裝新版時。

  • AI 腳本基準:AI 產生的腳本多以 PowerShell 6+ 為基準,舊版執行常會失敗。
  • 編碼問題:解決 Windows PowerShell 5.1 將 UTF-8 無 BOM 檔案誤判為 ANSI 的問題。
  • 工具相容性:如 Copilot CLI 等現代開發工具明確要求 PowerShell 6+。
  • 跨平台需求:若需編寫可在 Windows、Linux、macOS 通用的腳本。

TIP

兩者可以並存,不需移除 Windows PowerShell。

異動歷程

  • 2026-03-25 初版文件建立。